package com.ease.model.type;

import com.ease.common.enums.ValuableEnum;
import com.ease.model.constant.SpatialDimension;

/**
 * DL00 UNKNOWN_GEOMETRY <br>
 * DL01 POINT <br>
 * DL02 LINE or CURVE <br>
 * DL03 POLYGON <br>
 * DL04 COLLECTION <br>
 * DL05 MULTIPOINT <br>
 * DL06 MULTILINE or MULTICURVE <br>
 * DL07 MULTIPOLYGON <br>
 * 
 * @author nathanleewei
 * 
 */
public enum SpatialFeatureType implements ValuableEnum {

	Point((short) 3001, SpatialDimension.DIMENSIONS, 0, "01"),

	Line((short) 3002, SpatialDimension.DIMENSIONS, 0, "02"),

	Polygon((short) 3003, SpatialDimension.DIMENSIONS, 0, "03");

	// DLTT
	private short value;

	/** D代表维数,可以取值为2、3、4 */
	private int dimension = SpatialDimension.DIMENSIONS;//

	/** L代表线性参考,如果没有取值为0 */
	private int linearReferencing;//

	/** TT代表几何类型,取值为00到09 */
	private String geometryType;//

	private SpatialFeatureType(short value, int dimension, int linearReferencing, String geometryType) {
		this.value = value;
		this.dimension = dimension;
		this.linearReferencing = linearReferencing;
		this.geometryType = geometryType;
	}

	public String getName() {
		return name();
	}

	public short getValue() {
		return this.value;
	}

	/**
	 * @return the dimension
	 */
	public int getDimension() {
		return dimension;
	}

	/**
	 * @return the linearReferencing
	 */
	public int getLinearReferencing() {
		return linearReferencing;
	}

	/**
	 * @return the geometryType
	 */
	public String getGeometryType() {
		return geometryType;
	}
}
